﻿using System;
namespace Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="detailandmed_v5_yldandmed", Namespace="http://producers.arireg.xtee.riik.ee/producer/arireg", Target=typeof(DetailandmedV5Yldandmed))]
    public class DetailandmedV5YldandmedSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IDetailandmedV5Yldandmed clazz;
        
        public DetailandmedV5YldandmedSerializer(IDetailandmedV5Yldandmed clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.EttevotteregistriNr!=null) {
                Writer.WriteStartElement("ettevotteregistri_nr");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "integer");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInteger(((decimal)(clazz.EttevotteregistriNr))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EsmaregistreerimiseKpv!=null) {
                Writer.WriteStartElement("esmaregistreerimise_kpv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "date");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDate(((System.DateTime)(clazz.EsmaregistreerimiseKpv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KustutamiseKpv!=null) {
                Writer.WriteStartElement("kustutamise_kpv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "date");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDate(((System.DateTime)(clazz.KustutamiseKpv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Staatus!=null) {
                Writer.WriteStartElement("staatus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Staatus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.StaatusTekstina!=null) {
                Writer.WriteStartElement("staatus_tekstina");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.StaatusTekstina))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Piirkond!=null) {
                Writer.WriteStartElement("piirkond");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "integer");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInteger(((decimal)(clazz.Piirkond))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PiirkondTekstina!=null) {
                Writer.WriteStartElement("piirkond_tekstina");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.PiirkondTekstina))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PiirkondTekstinaPikk!=null) {
                Writer.WriteStartElement("piirkond_tekstina_pikk");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.PiirkondTekstinaPikk))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Tegutseb!=null) {
                Writer.WriteStartElement("tegutseb");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Tegutseb))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.TegutsebTekstina!=null) {
                Writer.WriteStartElement("tegutseb_tekstina");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TegutsebTekstina))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.MkrRegKpv!=null) {
                Writer.WriteStartElement("mkr_reg_kpv");
                global::Xtee.Core.SerializationMetadata metaMkrRegKpv = this.GetMetaData(clazz.MkrRegKpv);
                Writer.WriteTypeAttribute(metaMkrRegKpv.TypeQualifiedName.Namespace, metaMkrRegKpv.TypeQualifiedName.Name);
                metaMkrRegKpv.NewSerializer(clazz.MkrRegKpv).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.EttevotjaTegevuseAeg!=null) {
                Writer.WriteStartElement("ettevotja_tegevuse_aeg");
                global::Xtee.Core.SerializationMetadata metaEttevotjaTegevuseAeg = this.GetMetaData(clazz.EttevotjaTegevuseAeg);
                Writer.WriteTypeAttribute(metaEttevotjaTegevuseAeg.TypeQualifiedName.Namespace, metaEttevotjaTegevuseAeg.TypeQualifiedName.Name);
                metaEttevotjaTegevuseAeg.NewSerializer(clazz.EttevotjaTegevuseAeg).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.EvksRegistreeritud!=null) {
                Writer.WriteStartElement("evks_registreeritud");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EvksRegistreeritud))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.EvksRegistreeritudKandeKpv!=null) {
                Writer.WriteStartElement("evks_registreeritud_kande_kpv");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "date");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDate(((System.DateTime)(clazz.EvksRegistreeritudKandeKpv))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikVorm!=null) {
                Writer.WriteStartElement("oiguslik_vorm");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OiguslikVorm))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikVormNr!=null) {
                Writer.WriteStartElement("oiguslik_vorm_nr");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "integer");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdInteger(((decimal)(clazz.OiguslikVormNr))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikVormTekstina!=null) {
                Writer.WriteStartElement("oiguslik_vorm_tekstina");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OiguslikVormTekstina))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikuVormiAlaliik!=null) {
                Writer.WriteStartElement("oigusliku_vormi_alaliik");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OiguslikuVormiAlaliik))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikuVormiAlaliikTekstina!=null) {
                Writer.WriteStartElement("oigusliku_vormi_alaliik_tekstina");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.OiguslikuVormiAlaliikTekstina))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sundlopetamine!=null) {
                Writer.WriteStartElement("sundlopetamine");
                global::Xtee.Core.SerializationMetadata metaSundlopetamine = this.GetMetaData(clazz.Sundlopetamine);
                Writer.WriteTypeAttribute(metaSundlopetamine.TypeQualifiedName.Namespace, metaSundlopetamine.TypeQualifiedName.Name);
                metaSundlopetamine.NewSerializer(clazz.Sundlopetamine).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Staatused!=null) {
                Writer.WriteStartElement("staatused");
                global::Xtee.Core.SerializationMetadata metaStaatused = this.GetMetaData(clazz.Staatused);
                Writer.WriteTypeAttribute(metaStaatused.TypeQualifiedName.Namespace, metaStaatused.TypeQualifiedName.Name);
                metaStaatused.NewSerializer(clazz.Staatused).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.ValismaaAriyhing!=null) {
                Writer.WriteStartElement("valismaa_ariyhing");
                global::Xtee.Core.SerializationMetadata metaValismaaAriyhing = this.GetMetaData(clazz.ValismaaAriyhing);
                Writer.WriteTypeAttribute(metaValismaaAriyhing.TypeQualifiedName.Namespace, metaValismaaAriyhing.TypeQualifiedName.Name);
                metaValismaaAriyhing.NewSerializer(clazz.ValismaaAriyhing).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Arinimed!=null) {
                Writer.WriteStartElement("arinimed");
                global::Xtee.Core.SerializationMetadata metaArinimed = this.GetMetaData(clazz.Arinimed);
                Writer.WriteTypeAttribute(metaArinimed.TypeQualifiedName.Namespace, metaArinimed.TypeQualifiedName.Name);
                metaArinimed.NewSerializer(clazz.Arinimed).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Aadressid!=null) {
                Writer.WriteStartElement("aadressid");
                global::Xtee.Core.SerializationMetadata metaAadressid = this.GetMetaData(clazz.Aadressid);
                Writer.WriteTypeAttribute(metaAadressid.TypeQualifiedName.Namespace, metaAadressid.TypeQualifiedName.Name);
                metaAadressid.NewSerializer(clazz.Aadressid).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Kinnisasjad!=null) {
                Writer.WriteStartElement("kinnisasjad");
                global::Xtee.Core.SerializationMetadata metaKinnisasjad = this.GetMetaData(clazz.Kinnisasjad);
                Writer.WriteTypeAttribute(metaKinnisasjad.TypeQualifiedName.Namespace, metaKinnisasjad.TypeQualifiedName.Name);
                metaKinnisasjad.NewSerializer(clazz.Kinnisasjad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikudVormid!=null) {
                Writer.WriteStartElement("oiguslikud_vormid");
                global::Xtee.Core.SerializationMetadata metaOiguslikudVormid = this.GetMetaData(clazz.OiguslikudVormid);
                Writer.WriteTypeAttribute(metaOiguslikudVormid.TypeQualifiedName.Namespace, metaOiguslikudVormid.TypeQualifiedName.Name);
                metaOiguslikudVormid.NewSerializer(clazz.OiguslikudVormid).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.OiguslikuVormiAlaliigid!=null) {
                Writer.WriteStartElement("oigusliku_vormi_alaliigid");
                global::Xtee.Core.SerializationMetadata metaOiguslikuVormiAlaliigid = this.GetMetaData(clazz.OiguslikuVormiAlaliigid);
                Writer.WriteTypeAttribute(metaOiguslikuVormiAlaliigid.TypeQualifiedName.Namespace, metaOiguslikuVormiAlaliigid.TypeQualifiedName.Name);
                metaOiguslikuVormiAlaliigid.NewSerializer(clazz.OiguslikuVormiAlaliigid).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Kapitalid!=null) {
                Writer.WriteStartElement("kapitalid");
                global::Xtee.Core.SerializationMetadata metaKapitalid = this.GetMetaData(clazz.Kapitalid);
                Writer.WriteTypeAttribute(metaKapitalid.TypeQualifiedName.Namespace, metaKapitalid.TypeQualifiedName.Name);
                metaKapitalid.NewSerializer(clazz.Kapitalid).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.NimivaartusetaAktsiad!=null) {
                Writer.WriteStartElement("nimivaartuseta_aktsiad");
                global::Xtee.Core.SerializationMetadata metaNimivaartusetaAktsiad = this.GetMetaData(clazz.NimivaartusetaAktsiad);
                Writer.WriteTypeAttribute(metaNimivaartusetaAktsiad.TypeQualifiedName.Namespace, metaNimivaartusetaAktsiad.TypeQualifiedName.Name);
                metaNimivaartusetaAktsiad.NewSerializer(clazz.NimivaartusetaAktsiad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Oigusjargsused!=null) {
                Writer.WriteStartElement("oigusjargsused");
                global::Xtee.Core.SerializationMetadata metaOigusjargsused = this.GetMetaData(clazz.Oigusjargsused);
                Writer.WriteTypeAttribute(metaOigusjargsused.TypeQualifiedName.Namespace, metaOigusjargsused.TypeQualifiedName.Name);
                metaOigusjargsused.NewSerializer(clazz.Oigusjargsused).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.SeisundiMuutused!=null) {
                Writer.WriteStartElement("seisundi_muutused");
                global::Xtee.Core.SerializationMetadata metaSeisundiMuutused = this.GetMetaData(clazz.SeisundiMuutused);
                Writer.WriteTypeAttribute(metaSeisundiMuutused.TypeQualifiedName.Namespace, metaSeisundiMuutused.TypeQualifiedName.Name);
                metaSeisundiMuutused.NewSerializer(clazz.SeisundiMuutused).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Majandusaastad!=null) {
                Writer.WriteStartElement("majandusaastad");
                global::Xtee.Core.SerializationMetadata metaMajandusaastad = this.GetMetaData(clazz.Majandusaastad);
                Writer.WriteTypeAttribute(metaMajandusaastad.TypeQualifiedName.Namespace, metaMajandusaastad.TypeQualifiedName.Name);
                metaMajandusaastad.NewSerializer(clazz.Majandusaastad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Pohikirjad!=null) {
                Writer.WriteStartElement("pohikirjad");
                global::Xtee.Core.SerializationMetadata metaPohikirjad = this.GetMetaData(clazz.Pohikirjad);
                Writer.WriteTypeAttribute(metaPohikirjad.TypeQualifiedName.Namespace, metaPohikirjad.TypeQualifiedName.Name);
                metaPohikirjad.NewSerializer(clazz.Pohikirjad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.KompromissiTahtajad!=null) {
                Writer.WriteStartElement("kompromissi_tahtajad");
                global::Xtee.Core.SerializationMetadata metaKompromissiTahtajad = this.GetMetaData(clazz.KompromissiTahtajad);
                Writer.WriteTypeAttribute(metaKompromissiTahtajad.TypeQualifiedName.Namespace, metaKompromissiTahtajad.TypeQualifiedName.Name);
                metaKompromissiTahtajad.NewSerializer(clazz.KompromissiTahtajad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.AsutamiseAjad!=null) {
                Writer.WriteStartElement("asutamise_ajad");
                global::Xtee.Core.SerializationMetadata metaAsutamiseAjad = this.GetMetaData(clazz.AsutamiseAjad);
                Writer.WriteTypeAttribute(metaAsutamiseAjad.TypeQualifiedName.Namespace, metaAsutamiseAjad.TypeQualifiedName.Name);
                metaAsutamiseAjad.NewSerializer(clazz.AsutamiseAjad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.TegutsemiseTahtajad!=null) {
                Writer.WriteStartElement("tegutsemise_tahtajad");
                global::Xtee.Core.SerializationMetadata metaTegutsemiseTahtajad = this.GetMetaData(clazz.TegutsemiseTahtajad);
                Writer.WriteTypeAttribute(metaTegutsemiseTahtajad.TypeQualifiedName.Namespace, metaTegutsemiseTahtajad.TypeQualifiedName.Name);
                metaTegutsemiseTahtajad.NewSerializer(clazz.TegutsemiseTahtajad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.EsmanimetamiseAjad!=null) {
                Writer.WriteStartElement("esmanimetamise_ajad");
                global::Xtee.Core.SerializationMetadata metaEsmanimetamiseAjad = this.GetMetaData(clazz.EsmanimetamiseAjad);
                Writer.WriteTypeAttribute(metaEsmanimetamiseAjad.TypeQualifiedName.Namespace, metaEsmanimetamiseAjad.TypeQualifiedName.Name);
                metaEsmanimetamiseAjad.NewSerializer(clazz.EsmanimetamiseAjad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.MarkusedKaardil!=null) {
                Writer.WriteStartElement("markused_kaardil");
                global::Xtee.Core.SerializationMetadata metaMarkusedKaardil = this.GetMetaData(clazz.MarkusedKaardil);
                Writer.WriteTypeAttribute(metaMarkusedKaardil.TypeQualifiedName.Namespace, metaMarkusedKaardil.TypeQualifiedName.Name);
                metaMarkusedKaardil.NewSerializer(clazz.MarkusedKaardil).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.TegevusaladKaardil!=null) {
                Writer.WriteStartElement("tegevusalad_kaardil");
                global::Xtee.Core.SerializationMetadata metaTegevusaladKaardil = this.GetMetaData(clazz.TegevusaladKaardil);
                Writer.WriteTypeAttribute(metaTegevusaladKaardil.TypeQualifiedName.Namespace, metaTegevusaladKaardil.TypeQualifiedName.Name);
                metaTegevusaladKaardil.NewSerializer(clazz.TegevusaladKaardil).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.EesmargidKaardil!=null) {
                Writer.WriteStartElement("eesmargid_kaardil");
                global::Xtee.Core.SerializationMetadata metaEesmargidKaardil = this.GetMetaData(clazz.EesmargidKaardil);
                Writer.WriteTypeAttribute(metaEesmargidKaardil.TypeQualifiedName.Namespace, metaEesmargidKaardil.TypeQualifiedName.Name);
                metaEesmargidKaardil.NewSerializer(clazz.EesmargidKaardil).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.Sidevahendid!=null) {
                Writer.WriteStartElement("sidevahendid");
                global::Xtee.Core.SerializationMetadata metaSidevahendid = this.GetMetaData(clazz.Sidevahendid);
                Writer.WriteTypeAttribute(metaSidevahendid.TypeQualifiedName.Namespace, metaSidevahendid.TypeQualifiedName.Name);
                metaSidevahendid.NewSerializer(clazz.Sidevahendid).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.TeatatudTegevusalad!=null) {
                Writer.WriteStartElement("teatatud_tegevusalad");
                global::Xtee.Core.SerializationMetadata metaTeatatudTegevusalad = this.GetMetaData(clazz.TeatatudTegevusalad);
                Writer.WriteTypeAttribute(metaTeatatudTegevusalad.TypeQualifiedName.Namespace, metaTeatatudTegevusalad.TypeQualifiedName.Name);
                metaTeatatudTegevusalad.NewSerializer(clazz.TeatatudTegevusalad).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            if (clazz.InfoMajandusaastaAruannetest!=null) {
                Writer.WriteStartElement("info_majandusaasta_aruannetest");
                global::Xtee.Core.SerializationMetadata metaInfoMajandusaastaAruannetest = this.GetMetaData(clazz.InfoMajandusaastaAruannetest);
                Writer.WriteTypeAttribute(metaInfoMajandusaastaAruannetest.TypeQualifiedName.Namespace, metaInfoMajandusaastaAruannetest.TypeQualifiedName.Name);
                metaInfoMajandusaastaAruannetest.NewSerializer(clazz.InfoMajandusaastaAruannetest).WriteXml(Writer);
                Writer.WriteEndElement();
            }
            Writer.WriteStartElement("asutatud_sissemakset_tegemata");
            if (clazz.AsutatudSissemaksetTegemata!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.AsutatudSissemaksetTegemata))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="ettevotteregistri_nr") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>ettevotteregistri_nr");
                }
                clazz.EttevotteregistriNr = new global::Xtee.Core.Schema.XsdInteger(Reader.ReadElementString("ettevotteregistri_nr")).Value;
            }
            if (Reader.LocalName=="esmaregistreerimise_kpv") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>esmaregistreerimise_kpv");
                }
                clazz.EsmaregistreerimiseKpv = new global::Xtee.Core.Schema.XsdDate(Reader.ReadElementString("esmaregistreerimise_kpv")).Value;
            }
            if (Reader.LocalName=="kustutamise_kpv") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>kustutamise_kpv");
                }
                clazz.KustutamiseKpv = new global::Xtee.Core.Schema.XsdDate(Reader.ReadElementString("kustutamise_kpv")).Value;
            }
            if (Reader.LocalName=="staatus") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>staatus");
                }
                clazz.Staatus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("staatus")).Value;
            }
            if (Reader.LocalName=="staatus_tekstina") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>staatus_tekstina");
                }
                clazz.StaatusTekstina = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("staatus_tekstina")).Value;
            }
            if (Reader.LocalName=="piirkond") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>piirkond");
                }
                clazz.Piirkond = new global::Xtee.Core.Schema.XsdInteger(Reader.ReadElementString("piirkond")).Value;
            }
            if (Reader.LocalName=="piirkond_tekstina") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>piirkond_tekstina");
                }
                clazz.PiirkondTekstina = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("piirkond_tekstina")).Value;
            }
            if (Reader.LocalName=="piirkond_tekstina_pikk") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>piirkond_tekstina_pikk");
                }
                clazz.PiirkondTekstinaPikk = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("piirkond_tekstina_pikk")).Value;
            }
            if (Reader.LocalName=="tegutseb") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>tegutseb");
                }
                clazz.Tegutseb = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("tegutseb")).Value;
            }
            if (Reader.LocalName=="tegutseb_tekstina") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>tegutseb_tekstina");
                }
                clazz.TegutsebTekstina = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("tegutseb_tekstina")).Value;
            }
            if (Reader.LocalName=="mkr_reg_kpv") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>mkr_reg_kpv");
                }
                global::Xtee.Core.SerializationMetadata metaMkrRegKpv = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5MkrregKuupaevad>(Reader, "detailandmed_v5_mkrreg_kuupaevad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.MkrRegKpv = metaMkrRegKpv.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5MkrregKuupaevad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("mkr_reg_kpv");
                    metaMkrRegKpv.NewSerializer(clazz.MkrRegKpv).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ettevotja_tegevuse_aeg") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>ettevotja_tegevuse_aeg");
                }
                global::Xtee.Core.SerializationMetadata metaEttevotjaTegevuseAeg = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegAjad>(Reader, "detailandmed_v5_teg_ajad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.EttevotjaTegevuseAeg = metaEttevotjaTegevuseAeg.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegAjad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("ettevotja_tegevuse_aeg");
                    metaEttevotjaTegevuseAeg.NewSerializer(clazz.EttevotjaTegevuseAeg).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="evks_registreeritud") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>evks_registreeritud");
                }
                clazz.EvksRegistreeritud = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("evks_registreeritud")).Value;
            }
            if (Reader.LocalName=="evks_registreeritud_kande_kpv") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>evks_registreeritud_kande_kpv");
                }
                clazz.EvksRegistreeritudKandeKpv = new global::Xtee.Core.Schema.XsdDate(Reader.ReadElementString("evks_registreeritud_kande_kpv")).Value;
            }
            if (Reader.LocalName=="oiguslik_vorm") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oiguslik_vorm");
                }
                clazz.OiguslikVorm = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("oiguslik_vorm")).Value;
            }
            if (Reader.LocalName=="oiguslik_vorm_nr") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oiguslik_vorm_nr");
                }
                clazz.OiguslikVormNr = new global::Xtee.Core.Schema.XsdInteger(Reader.ReadElementString("oiguslik_vorm_nr")).Value;
            }
            if (Reader.LocalName=="oiguslik_vorm_tekstina") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oiguslik_vorm_tekstina");
                }
                clazz.OiguslikVormTekstina = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("oiguslik_vorm_tekstina")).Value;
            }
            if (Reader.LocalName=="oigusliku_vormi_alaliik") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oigusliku_vormi_alaliik");
                }
                clazz.OiguslikuVormiAlaliik = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("oigusliku_vormi_alaliik")).Value;
            }
            if (Reader.LocalName=="oigusliku_vormi_alaliik_tekstina") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oigusliku_vormi_alaliik_tekstina");
                }
                clazz.OiguslikuVormiAlaliikTekstina = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("oigusliku_vormi_alaliik_tekstina")).Value;
            }
            if (Reader.LocalName=="sundlopetamine") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>sundlopetamine");
                }
                global::Xtee.Core.SerializationMetadata metaSundlopetamine = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Sundlopetamine>(Reader, "detailandmed_v5_sundlopetamine", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Sundlopetamine = metaSundlopetamine.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Sundlopetamine>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("sundlopetamine");
                    metaSundlopetamine.NewSerializer(clazz.Sundlopetamine).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="staatused") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>staatused");
                }
                global::Xtee.Core.SerializationMetadata metaStaatused = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Staatused>(Reader, "detailandmed_v5_staatused", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Staatused = metaStaatused.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Staatused>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("staatused");
                    metaStaatused.NewSerializer(clazz.Staatused).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="valismaa_ariyhing") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>valismaa_ariyhing");
                }
                global::Xtee.Core.SerializationMetadata metaValismaaAriyhing = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5ValismaaAriyhing>(Reader, "detailandmed_v5_valismaa_ariyhing", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.ValismaaAriyhing = metaValismaaAriyhing.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5ValismaaAriyhing>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("valismaa_ariyhing");
                    metaValismaaAriyhing.NewSerializer(clazz.ValismaaAriyhing).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="arinimed") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>arinimed");
                }
                global::Xtee.Core.SerializationMetadata metaArinimed = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Arinimed>(Reader, "detailandmed_v5_arinimed", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Arinimed = metaArinimed.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Arinimed>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("arinimed");
                    metaArinimed.NewSerializer(clazz.Arinimed).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="aadressid") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>aadressid");
                }
                global::Xtee.Core.SerializationMetadata metaAadressid = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Aadressid>(Reader, "detailandmed_v5_aadressid", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Aadressid = metaAadressid.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Aadressid>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("aadressid");
                    metaAadressid.NewSerializer(clazz.Aadressid).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="kinnisasjad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>kinnisasjad");
                }
                global::Xtee.Core.SerializationMetadata metaKinnisasjad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Kinnisasjad>(Reader, "detailandmed_v5_kinnisasjad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Kinnisasjad = metaKinnisasjad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Kinnisasjad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("kinnisasjad");
                    metaKinnisasjad.NewSerializer(clazz.Kinnisasjad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="oiguslikud_vormid") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oiguslikud_vormid");
                }
                global::Xtee.Core.SerializationMetadata metaOiguslikudVormid = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5OiguslikudVormid>(Reader, "detailandmed_v5_oiguslikud_vormid", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.OiguslikudVormid = metaOiguslikudVormid.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5OiguslikudVormid>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("oiguslikud_vormid");
                    metaOiguslikudVormid.NewSerializer(clazz.OiguslikudVormid).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="oigusliku_vormi_alaliigid") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oigusliku_vormi_alaliigid");
                }
                global::Xtee.Core.SerializationMetadata metaOiguslikuVormiAlaliigid = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5OiguslikuVormiAlaliigid>(Reader, "detailandmed_v5_oigusliku_vormi_alaliigid", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.OiguslikuVormiAlaliigid = metaOiguslikuVormiAlaliigid.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5OiguslikuVormiAlaliigid>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("oigusliku_vormi_alaliigid");
                    metaOiguslikuVormiAlaliigid.NewSerializer(clazz.OiguslikuVormiAlaliigid).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="kapitalid") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>kapitalid");
                }
                global::Xtee.Core.SerializationMetadata metaKapitalid = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Kapitalid>(Reader, "detailandmed_v5_kapitalid", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Kapitalid = metaKapitalid.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Kapitalid>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("kapitalid");
                    metaKapitalid.NewSerializer(clazz.Kapitalid).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="nimivaartuseta_aktsiad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>nimivaartuseta_aktsiad");
                }
                global::Xtee.Core.SerializationMetadata metaNimivaartusetaAktsiad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Nimivaartusetaaktsiad>(Reader, "detailandmed_v5_nimivaartusetaaktsiad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.NimivaartusetaAktsiad = metaNimivaartusetaAktsiad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Nimivaartusetaaktsiad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("nimivaartuseta_aktsiad");
                    metaNimivaartusetaAktsiad.NewSerializer(clazz.NimivaartusetaAktsiad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="oigusjargsused") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>oigusjargsused");
                }
                global::Xtee.Core.SerializationMetadata metaOigusjargsused = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Oigusjargsused>(Reader, "detailandmed_v5_oigusjargsused", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Oigusjargsused = metaOigusjargsused.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Oigusjargsused>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("oigusjargsused");
                    metaOigusjargsused.NewSerializer(clazz.Oigusjargsused).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="seisundi_muutused") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>seisundi_muutused");
                }
                global::Xtee.Core.SerializationMetadata metaSeisundiMuutused = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5SeisundiMuutused>(Reader, "detailandmed_v5_seisundi_muutused", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.SeisundiMuutused = metaSeisundiMuutused.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5SeisundiMuutused>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("seisundi_muutused");
                    metaSeisundiMuutused.NewSerializer(clazz.SeisundiMuutused).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="majandusaastad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>majandusaastad");
                }
                global::Xtee.Core.SerializationMetadata metaMajandusaastad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Majandusaastad>(Reader, "detailandmed_v5_majandusaastad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Majandusaastad = metaMajandusaastad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Majandusaastad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("majandusaastad");
                    metaMajandusaastad.NewSerializer(clazz.Majandusaastad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="pohikirjad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>pohikirjad");
                }
                global::Xtee.Core.SerializationMetadata metaPohikirjad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Pohikirjad>(Reader, "detailandmed_v5_pohikirjad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Pohikirjad = metaPohikirjad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Pohikirjad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("pohikirjad");
                    metaPohikirjad.NewSerializer(clazz.Pohikirjad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="kompromissi_tahtajad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>kompromissi_tahtajad");
                }
                global::Xtee.Core.SerializationMetadata metaKompromissiTahtajad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5KompromissiTahtajad>(Reader, "detailandmed_v5_kompromissi_tahtajad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.KompromissiTahtajad = metaKompromissiTahtajad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5KompromissiTahtajad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("kompromissi_tahtajad");
                    metaKompromissiTahtajad.NewSerializer(clazz.KompromissiTahtajad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="asutamise_ajad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>asutamise_ajad");
                }
                global::Xtee.Core.SerializationMetadata metaAsutamiseAjad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5AsutamiseAjad>(Reader, "detailandmed_v5_asutamise_ajad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.AsutamiseAjad = metaAsutamiseAjad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5AsutamiseAjad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("asutamise_ajad");
                    metaAsutamiseAjad.NewSerializer(clazz.AsutamiseAjad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="tegutsemise_tahtajad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>tegutsemise_tahtajad");
                }
                global::Xtee.Core.SerializationMetadata metaTegutsemiseTahtajad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegutsemiseTahtajad>(Reader, "detailandmed_v5_tegutsemise_tahtajad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.TegutsemiseTahtajad = metaTegutsemiseTahtajad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegutsemiseTahtajad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("tegutsemise_tahtajad");
                    metaTegutsemiseTahtajad.NewSerializer(clazz.TegutsemiseTahtajad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="esmanimetamise_ajad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>esmanimetamise_ajad");
                }
                global::Xtee.Core.SerializationMetadata metaEsmanimetamiseAjad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5EsmanimetamiseAjad>(Reader, "detailandmed_v5_esmanimetamise_ajad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.EsmanimetamiseAjad = metaEsmanimetamiseAjad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5EsmanimetamiseAjad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("esmanimetamise_ajad");
                    metaEsmanimetamiseAjad.NewSerializer(clazz.EsmanimetamiseAjad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="markused_kaardil") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>markused_kaardil");
                }
                global::Xtee.Core.SerializationMetadata metaMarkusedKaardil = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5MarkusedKaardil>(Reader, "detailandmed_v5_markused_kaardil", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.MarkusedKaardil = metaMarkusedKaardil.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5MarkusedKaardil>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("markused_kaardil");
                    metaMarkusedKaardil.NewSerializer(clazz.MarkusedKaardil).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="tegevusalad_kaardil") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>tegevusalad_kaardil");
                }
                global::Xtee.Core.SerializationMetadata metaTegevusaladKaardil = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegevusaladKaardil>(Reader, "detailandmed_v5_tegevusalad_kaardil", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.TegevusaladKaardil = metaTegevusaladKaardil.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TegevusaladKaardil>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("tegevusalad_kaardil");
                    metaTegevusaladKaardil.NewSerializer(clazz.TegevusaladKaardil).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="eesmargid_kaardil") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>eesmargid_kaardil");
                }
                global::Xtee.Core.SerializationMetadata metaEesmargidKaardil = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5EesmargidKaardil>(Reader, "detailandmed_v5_eesmargid_kaardil", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.EesmargidKaardil = metaEesmargidKaardil.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5EesmargidKaardil>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("eesmargid_kaardil");
                    metaEesmargidKaardil.NewSerializer(clazz.EesmargidKaardil).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="sidevahendid") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>sidevahendid");
                }
                global::Xtee.Core.SerializationMetadata metaSidevahendid = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Sidevahendid>(Reader, "detailandmed_v5_sidevahendid", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.Sidevahendid = metaSidevahendid.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5Sidevahendid>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("sidevahendid");
                    metaSidevahendid.NewSerializer(clazz.Sidevahendid).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="teatatud_tegevusalad") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>teatatud_tegevusalad");
                }
                global::Xtee.Core.SerializationMetadata metaTeatatudTegevusalad = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TeatatudTegevusalad>(Reader, "detailandmed_v5_teatatud_tegevusalad", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.TeatatudTegevusalad = metaTeatatudTegevusalad.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5TeatatudTegevusalad>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("teatatud_tegevusalad");
                    metaTeatatudTegevusalad.NewSerializer(clazz.TeatatudTegevusalad).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="info_majandusaasta_aruannetest") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>detailandmed_v5_yldandmed>info_majandusaasta_aruannetest");
                }
                global::Xtee.Core.SerializationMetadata metaInfoMajandusaastaAruannetest = this.GetMetaData<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5AruandeInfod>(Reader, "detailandmed_v5_aruande_infod", "http://producers.arireg.xtee.riik.ee/producer/arireg");
                clazz.InfoMajandusaastaAruannetest = metaInfoMajandusaastaAruannetest.NewEntity<global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.IDetailandmedV5AruandeInfod>();
                if ((Reader.IsEmptyElement == false)) {
                    Reader.ReadStartElement("info_majandusaasta_aruannetest");
                    metaInfoMajandusaastaAruannetest.NewSerializer(clazz.InfoMajandusaastaAruannetest).ReadXml(Reader);
                    Reader.ReadEndElement();
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="asutatud_sissemakset_tegemata") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.AsutatudSissemaksetTegemata = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("asutatud_sissemakset_tegemata")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            else {
                throw new global::Xtee.Core.Exceptions.UnExpectedElementException(">>detailandmed_v5_yldandmed>asutatud_sissemakset_tegemata", Reader.LocalName);
            }
        }
    }
}
